Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>NSEC3</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/NSEC3"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-NSEC3 rootpage-NSEC3 skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">NSEC3</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p><b>NSEC3</b> ist ein Verfahren, um im <a href="Domain_Name_System" title="Domain Name System">Domain Name System</a> (DNS) das Fehlen eines <a href="Domain_(Internet)" title="Domain (Internet)">Domainnamens</a> oder <a href="Resource_Record" title="Resource Record">Resource Records</a> mit kryptographischen <a href="Domain_Name_System_Security_Extensions" title="Domain Name System Security Extensions">DNSSEC</a>-Signaturen nachzuweisen. Durch den NSEC3 Resource Record können <a href="DNS-Spoofing" title="DNS-Spoofing">DNS-Spoofing-Angriffe</a> abgewehrt werden, die vorgaukeln, dass ein bestimmter Domainname nicht existiert. NSEC3 wurde von der <a href="Internet_Engineering_Task_Force" title="Internet Engineering Task Force">IETF</a> im Jahr 2008 als <a href="Request_for_Comments" title="Request for Comments">Request for Comments</a> veröffentlicht. Im Gegensatz zu dem alternativen <a href="NSEC_Resource_Record" title="NSEC Resource Record">NSEC Resource Record</a> versteckt NSEC3 die existierenden Domainnamen durch eine <a href="Kryptographische_Hashfunktion" title="Kryptographische Hashfunktion">kryptographische Hashfunktion</a>, um sie vor dem Auslesen per <a href="Zone_Walking" title="Zone Walking">Zone Walking</a> zu schützen.
</p>

<div class="mw-heading mw-heading2"><h2 id="Funktionsweise">Funktionsweise</h2></div>

<p>Mit dem Signieren von DNS-Einträgen mittels DNSSEC kann verifiziert werden, dass diese Einträge nicht verfälscht wurden und von den korrekten autoritativen Nameservern stammen. Zunächst nicht möglich ist es jedoch, das <i>Nicht-Vorhandensein</i> von DNS-Einträgen zu beweisen. Fragt etwa ein Client den Namen <span style="font-family:monospace;">test.example.org</span> an, so kann ein Angreifer die entsprechenden Daten aus dem Antwortpakets des Servers entfernen, ohne dass dies dem Client ersichtlich wäre.
</p><p>Um derartige Attacken zu verhindern, werden alle Namen einer Zone über NSEC Resource Records alphabetisch geordnet ringförmig verkettet, wobei der letzte Eintrag auf den ersten zeigt (siehe <a href="NSEC_Resource_Record#Hintergrund" title="NSEC Resource Record">NSEC Resource Record</a>). Diese NSEC-Records werden mit einem <a href="RRSIG_Resource_Record" title="RRSIG Resource Record">RRSIG Resource Record</a> unterschrieben. In seinen Antwortpaketen liefert ein DNS-Server zu einem Namen jeweils den zugehörigen NSEC-Eintrag mit.
</p><p>Semantisch stellt ein NSEC-Resource-Record für den Client also sicher, dass sich zwischen zwei Namen kein weiterer befindet. Dies kann ausgenutzt werden, um eine Liste aller Namen in einer DNS-Zone zu erschließen, indem sequentiell alle NSEC-Resource-Records einer Zone abgefragt werden (<i><a href="Zone_Walking" title="Zone Walking">Zone Walking</a></i>). Diese Eigenschaft von NSEC bzw. DNSSEC ist in bestimmten Einsatzszenarien unerwünscht.
</p><p>Im Gegensatz zu NSEC verwendet NSEC3 Hashwerte der Namen statt Klartext-Label, wodurch die Ordnungsrelation auf der Menge der errechneten Hashwerte definiert wird. Ein NSEC3-Resource-Record bestätigt also, dass zwischen zwei Hashwerten zu Namen der Zone kein Hashwert eines weiteren Namens liegt. Der <i>Resolver</i> kann also den Hash-Wert seines angefragten Labels ermitteln und feststellen, dass der nächste Wert in der Kette ein anderer ist, ohne zu wissen, welchen Inhalt dieser konkret hat.
</p><p>Die verwendete Hashfunktion und andere Parameter des Verfahrens wie zum Beispiel ein <a href="Salt_(Kryptologie)" title="Salt (Kryptologie)">Salt</a> sind im NSEC3 Resource Record hinterlegt und werden vom Resolver ausgewertet. Zusätzlich gibt es pro Zone einen <a href="#NSEC3PARAM_Resource_Record">NSEC3PARAM Resource Record</a>, der diese Parameter für den autoritativen Nameserver hinterlegt.
</p>
<div class="mw-heading mw-heading2"><h2 id="NSEC3_Resource_Record">NSEC3 Resource Record</h2></div>
<p>Ein NSEC3 Resource Record besteht aus den folgenden Feldern:
</p>
<dl><dt>Hashed Owner Name</dt>
<dd><a href="Base32" title="Base32">Base32</a>-kodierter <a href="Hashwert" class="mw-redirect" title="Hashwert">Hashwert</a> eines Domainnamens (Anfang eines NSEC3-Bereichs)</dd>
<dt>TTL</dt>
<dd><a href="Time_to_Live" title="Time to Live">Time to Live</a></dd>
<dt>Klasse</dt>
<dd>IN (<a href="Internet" title="Internet">Internet</a>)</dd>
<dt>Typ</dt>
<dd>NSEC3</dd>
<dt>Hash-Algorithmus</dt>
<dd>verwendete <a href="Hashfunktion" title="Hashfunktion">Hashfunktion</a> (1: <a href="SHA-1" class="mw-redirect" title="SHA-1">SHA-1</a>)</dd>
<dt>Flags</dt>
<dd>Verwendung der Opt-Out-Funktion (0: kein Opt-Out; 1: Opt-Out)</dd>
<dt>Iterationen</dt>
<dd>Anzahl zusätzlicher Hash-Iterationen</dd>
<dt>Salt</dt>
<dd>beim Hashing verwendeter <a href="Salt_(Kryptologie)" title="Salt (Kryptologie)">Salt-Wert</a></dd>
<dt>Next Hashed Owner Name</dt>
<dd>Base32-kodierter Hashwert eines Domainnamens (Ende eines NSEC3-Bereichs)</dd>
<dt>Liste der Typen</dt>
<dd>Liste der vorhandenen <a href="Resource_Record" title="Resource Record">Record-Typen</a> unterhalb des <i>Owner Names</i></dd></dl>
<div class="mw-heading mw-heading2"><h2 id="NSEC3PARAM_Resource_Record">NSEC3PARAM Resource Record</h2></div>
<p>Der Zweck eines NSEC3PARAM Resource Records ist es, in der <a href="Zone_(DNS)" title="Zone (DNS)">DNS-Zone</a> Parameter für die <a href="Domain_Name_System#Nameserver" title="Domain Name System">autoritativen Nameserver</a> zu hinterlegen, die für die NSEC3-Hashberechnung erforderlich sind. Die Informationen sind prinzipiell auch in den NSEC3-Records enthalten, der NSEC3PARAM-Record erleichtert aber die Auffindbarkeit, da er an der Spitze der Zone unter dem Zonennamen abgelegt wird. DNSSEC-Resolver und Validatoren verwenden den NSEC3PARAM-Record nicht.
</p><p>Der NSEC3PARAM Resource Record besteht aus folgenden Feldern:<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p>
<dl><dt>Owner Name</dt>
<dd>Zonenname</dd>
<dt>TTL</dt>
<dd><a href="Time_to_Live" title="Time to Live">Time to Live</a></dd>
<dt>Klasse</dt>
<dd>IN (<a href="Internet" title="Internet">Internet</a>)</dd>
<dt>Typ</dt>
<dd>NSEC3PARAM</dd>
<dt>Hash-Algorithmus</dt>
<dd>verwendete <a href="Hashfunktion" title="Hashfunktion">Hashfunktion</a> (1: <a href="SHA-1" class="mw-redirect" title="SHA-1">SHA-1</a>)</dd>
<dt>Flags</dt>
<dd>Verwendung der Opt-Out-Funktion (0: kein Opt-Out; 1: Opt-Out)</dd>
<dt>Iterationen</dt>
<dd>Anzahl zusätzlicher Hash-Iterationen</dd>
<dt>Salt</dt>
<dd>beim Hashing verwendeter <a href="Salt_(Kryptologie)" title="Salt (Kryptologie)">Salt-Wert</a></dd></dl>
<div class="mw-heading mw-heading2"><h2 id="Beispiel">Beispiel</h2></div>
<p>Bei Abfrage des nicht existierenden Domainnamens <code>DiesisteinNSEC3Beispiel.de</code> geben die Nameserver von <a href=".de" title=".de">.de</a> folgende drei NSEC3 Resource Records zurück:
</p>
<pre>pffaak97rt0cs40je4c2iho30cebf3it.de. 7200 IN NSEC3 1 1 15 CA12B74ADB90591A PFFBLDU4RR5BISB2JIOS36ABAJLQNQMS NS DS RRSIG
</pre>
<p>Dieser Record weist die Nichtexistenz von <code>DiesisteinNSEC3Beispiel.de</code> nach, da dessen Hashwert <code>pffaollcec3ma3e5jl2b2gb7gc9dt3bd</code> zwischen den dargestellten Hashwerten liegt.
</p>
<pre>tjlb7qbojvmlf1s6gdriru7vsms1lg16.de. 7200 IN NSEC3 1 1 15 CA12B74ADB90591A TJLG9BE83U1BLVBVCTP8RIQP60D6ATDP NS SOA RRSIG DNSKEY NSEC3PARAM
</pre>
<p>Dieser Record weist nach, dass der umschließende Domainname <code>de</code> vorhanden ist (Hashwert <code>tjlb7qbojvmlf1s6gdriru7vsms1lg16</code>). Dieser Nachweis ist erforderlich, damit der Client weiß, unterhalb von welchem Domainnamen ein eventueller <a href="Wildcard_(Informatik)" title="Wildcard (Informatik)">Wildcard</a>-Record zu suchen ist.
</p>
<pre>nihitgish70cve28nu73a3segd6r1d4p.de. 7200 IN NSEC3 1 1 15 CA12B74ADB90591A NIHRI169E5SB3FJMDM1I3LTSNURVSITQ NS DS RRSIG
</pre>
<p>Dieser Record weist die Nichtexistenz eines Wildcard-Records <code>*.de</code> nach, da dessen Hashwert <code>nihkeqi54qck38bpfvggv7rq5jrrd2vp</code> zwischen den dargestellten Hashwerten liegt.
</p>
<div class="mw-heading mw-heading2"><h2 id="Angriffe">Angriffe</h2></div>
<p>NSEC3 erschwert zwar das Zone Walking, dennoch können durch <a href="Kryptoanalyse" title="Kryptoanalyse">kryptoanalytische Angriffe</a> die Klartextnamen einer Zone teilweise oder ganz erlangt werden. Der Angriff besteht aus zwei Phasen:<sup id="cite_ref-nsec3breaker_2-0" class="reference"><a href="#cite_note-nsec3breaker-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<ol><li><i>Hash Crawling</i>: Zunächst holt sich der Angreifer durch wiederholtes Anfragen bei den Nameservern die vollständige Kette der NSEC3-Records einer DNS-Zone. Die Anfragenamen wählt der Angreifer zufällig, wobei nur diejenigen Anfragen zum Server gesendet werden, bei denen der Angreifer erwartet einen bislang unbekannten NSEC3-Record zu erhalten. In der Regel ist eine DNS-Anfrage pro NSEC3-Record in der Zone erforderlich.</li>
<li><i>Hash Breaking</i>: Anschließend führt der Angreifer einen <a href="Brute-Force-Angriff" class="mw-redirect" title="Brute-Force-Angriff">Brute-Force-Angriff</a>, <a href="W%C3%B6rterbuchangriff" title="Wörterbuchangriff">Wörterbuchangriff</a> oder <a href="Markow-Kette" title="Markow-Kette">Markow-Ketten-Angriff</a> durch, um die NSEC3-Hashwerte zu Klartextnamen zurückzurechnen. Dieses Verfahren ähnelt dem <a href="Passwort" title="Passwort">Passwortcracking</a> und kann durch den Einsatz von <a href="Grafikprozessor" title="Grafikprozessor">Grafikprozessoren</a> erheblich beschleunigt werden.</li></ol>
<p>Durch den Einsatz des obigen Angriffsverfahrens auf alle Top-Level-Domains können innerhalb von zwei Wochen 79&nbsp;% der Klartextnamen wiederhergestellt werden. Die Anzahl an Hash-Iterationen hat keinen signifikanten Einfluss auf die Wiederherstellungsrate, sondern die Qualität des für den Angriff verwendeten <a href="W%C3%B6rterbuch" title="Wörterbuch">Wörterbuchs</a>.<sup id="cite_ref-dnssec-adoption_3-0" class="reference"><a href="#cite_note-dnssec-adoption-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Normen_und_Standards">Normen und Standards</h2></div>
<ul><li><i><a href="Request_for_Comments" title="Request for Comments">RFC</a>: <style data-mw-deduplicate="TemplateStyles:r250917974">
/* start https://de.wikipedia.org/ */


.mw-parser-output .dewiki-iconexternal>a{background-position:center right!important;background-repeat:no-repeat!important}body.skin-minerva .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/OOjs_UI_icon_external-link-ltr-progressive.svg")!important;background-size:10px!important;padding-right:13px!important}body.skin-timeless .mw-parser-output .dewiki-iconexternal>a,body.skin-monobook .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/MediaWiki_external_link_icon.svg")!important;padding-right:13px!important}body.skin-vector .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/Link.ernal-small-ltr-progressive.svg")!important;background-size:0.857em!important;padding-right:1em!important}


/* end https://de.wikipedia.org/ */
</style><span class="dewiki-iconexternal"><a href="https://datatracker.ietf.org/doc/html/rfc5155" class="extiw external" title="rfc:5155">5155</a></span></i>&nbsp;– <i><span lang="en">DNS Security (DNSSEC) Hashed Authenticated Denial of Existence</span></i>. (Spezifikation von NSEC3 und NSEC3PARAM, englisch).</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><i><a href="Request_for_Comments" title="Request for Comments">RFC</a>: <span class="dewiki-iconexternal"><a href="https://datatracker.ietf.org/doc/html/rfc5155#section-4" class="extiw external" title="rfc:5155">5155</a></span></i>&nbsp;– <i><span lang="en">DNS Security (DNSSEC) Hashed Authenticated Denial of Existence</span></i>. Abschnitt&nbsp;4 (englisch).</span>
</li>
<li id="cite_note-nsec3breaker-2"><span class="mw-cite-backlink"><a href="#cite_ref-nsec3breaker_2-0">↑</a></span> <span class="reference-text">
Matthäus Wander, Lorenz Schwittmann, Christopher Boelmann, Torben Weis: <a rel="nofollow" class="external text" href="https://wander.science/paper/2014_Wander_NSEC3.pdf"><i>GPU-based NSEC3 Hash Breaking</i>.</a> (PDF; 0,7&nbsp;MB) In: <i>2014 IEEE 13th International Symposium on Network Computing and Applications (NCA)</i>. IEEE, 2014, ISBN 978-1-4799-5393-6, <a href="https://doi.org/10.1109/NCA.2014.27" class="extiw external" title="doi:10.1109/NCA.2014.27">doi:10.1109/NCA.2014.27</a>. Vortrag: <a rel="nofollow" class="external text" href="https://wander.science/talks/20140822_NSEC3_Hash_Breaking.pdf">Folien.</a> (PDF; 1,9&nbsp;MB)</span>
</li>
<li id="cite_note-dnssec-adoption-3"><span class="mw-cite-backlink"><a href="#cite_ref-dnssec-adoption_3-0">↑</a></span> <span class="reference-text">
Matthäus Wander: <a rel="nofollow" class="external text" href="https://wander.science/paper/2017_Wander_DNSSEC_Adoption.pdf"><i>Measurement Survey of Server-Side DNSSEC Adoption</i>.</a> (PDF; 0,4&nbsp;MB) In: <i>2017 Network Traffic Measurement and Analysis Conference (TMA)</i>. IEEE, 2017, ISBN 978-3-901882-95-1, <a href="https://doi.org/10.23919/TMA.2017.8002913" class="extiw external" title="doi:10.23919/TMA.2017.8002913">doi:10.23919/TMA.2017.8002913</a>. Vortrag: <a rel="nofollow" class="external text" href="https://wander.science/talks/20170623_DNSSEC_Adoption.pdf">Folien.</a> (PDF; 0,5&nbsp;MB) <a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=pa9-dEkIRMM">Video.</a> youtube.</span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2023-07-26" href="https://de.wikipedia.org/wiki/?title=NSEC3&amp;oldid=235846839">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>